package cn.lyh.FoodSystem.Service.ImpI;

import cn.lyh.FoodSystem.Dto.Result;
import cn.lyh.FoodSystem.Service.FileService;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;

import java.io.File;
import java.io.IOException;
import java.util.HashMap;

@Service
@Transactional(readOnly = true)
public class FileServicelmpI implements FileService {

     @Value("${file.upladPath}")
     private  String upladPath ;
    /**
     * 文件上传
     *  file
     */
    @Override
    public Result fileUpload(MultipartFile file){
        Result r = new Result();
        String filePath =upladPath; //服务器的存放路径
        if (file.isEmpty()){
            r.setCode(400);
            r.setMsg("文件上传失败！");
        }else {
            //取出文件
            String OriginalFilename=file.getOriginalFilename();
            //文件重命名
            String fileName = null;
            if (OriginalFilename != null) {
                fileName = System.currentTimeMillis()+"."+OriginalFilename.substring(OriginalFilename.lastIndexOf(".")+1);
            }
            //拼接文件存放地址
            File dest=new File(filePath+fileName);
            //判断文件路径是否存在  如果不存在就创建文件路径
            if (dest.getParentFile().exists())
                dest.getParentFile().mkdirs();
            try {
                HashMap<String,String> map =new HashMap<>();
                //文件保存
                file.transferTo(dest);
                map.put("fileName",fileName);
                r.setData(map);
                //服务器地址路径 + 文件名字
                //r.setData( fileName);//本地
                r.setCode(200);
                r.setMsg("上传成功");

                //抛出异常
            } catch (IOException e) {
                e.fillInStackTrace();
                r.setData(e);
            }
        }
        return r;
    }


}
